package Thread;

class MyThread extends Thread{
    public void run(){
        // 这个是线程的入口方法
        while(true) {
            System.out.println("hello Thread!");
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }
    }
}

// 创建线程
public class Demo1 {
    public static void main(String[] args) throws InterruptedException {
        Thread thread = new MyThread();
        // 使用start方法可以间接调用run方法
        // start和 run都是Thread的成员
        // run 只是线程的入口(描述了线程要做什么事情)
        // start才是真正调用了系统的API,在系统中创建出了线程,让线程调用 run
        thread.start();
        // 从这句开始程序就并发执行,一边执行hello main,一边执行hello Thread
        // 兵分两路进行执行
        // 并发 == 并行 + 并发

        while(true){
            System.out.println("hello main!");
            Thread.sleep(1000);
        }
        // 先执行main,再执行的是Thread,先执行主线程
    }
}
